package com.ll.common.core.common;

import lombok.Data;

/**
 * --- 天道酬勤 ---
 *
 * @author QiuShiju
 * @date 2025/9/24
 * @desc 这个R类,是用来封装响应数据的,一般用于返回json数据
 * 这个类名R,是response的缩写,表示响应数据
 * 也可以Result
 * 若依项目AjaxResult
 * ---------------
 * 这个对象一般包含以下属性:
 * code: 状态码,一般200表示成功,400表示失败
 * msg: 提示信息
 * data: 响应数据
 */
@Data
public class R {
    /**
     * 一般200表示成功,400表示失败
     * 也可以自定义一些
     * 600,请求超时
     * 700,权限不足
     * 800,数据不存在
     * .....
     */
    private Integer code;
    private String msg;
    private Object data;


    public static R ok(){
        R r = new R();
        r.setCode(200);
        r.setMsg("成功");
        return r;
    }
    public static R ok(Integer code,String msg,Object data){
        R r = new R();
        r.setCode(code);
        r.setMsg(msg);
        r.setData(data);
        return r;
    }

    public static R ok(Object data){
        R r = new R();
        r.setCode(200);
        r.setMsg("成功");
        r.setData(data);
        return r;
    }

    public static R fail(String msg){
        R r = new R();
        r.setCode(400);
        r.setMsg(msg);
        return r;
    }

    public static R fail(){
        R r = new R();
        r.setCode(400);
        r.setMsg("失败");
        return r;
    }
}
